﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Data_Access_Layer;
using System.Text.RegularExpressions;

namespace Business_Layer
{
    public class SuppilerManager
    {
        //Lỗi
        public string _err="";
        

        //Hiển thị danh sách nhà cung cấp
        public List<Supplier> GetAll()
        {
            //Load lên những nhà cung cấp chưa bị xóa == thuộc tính deleted=false
            return Supplier.Objects.Where(x=>x.Deleted==false).ToList();
        }


       //Thêm hoặc cập nhật
        public void InsertOrUpdate(Supplier sup)
        {
            try
            {
                //Nếu Id > 0 nghĩa là đang cập nhật
                if (sup.Id > 0)
                    Supplier.Objects.Update(sup);
                else
                {
                    //Ngược lại == 0 là thêm mới
                    Supplier.Objects.Insert(sup);
                }
                
            }
            catch (Exception ex)
            {
                _err = ex.Message;
            }
        }
        //Xóa nhà cung cấp
        public void Delete(Supplier sup)
        {
            try
            {
                Supplier.Objects.Update(sup);
            }
            catch (Exception ex)
            {
                _err = ex.Message;
            }
        }

       //Tìm kiếm nhà cung cấp
        public List<Supplier> Find(string str, int type)
        {
            if(type==0)
                return Supplier.Objects.Where(x => x.Deleted == false).ToList();
            else if(type==1)
                return Supplier.Objects.Where(x => x.Deleted == false).ToList().FindAll(x => x.Id == int.Parse(str));
            else if(type==2)
                return Supplier.Objects.Where(x => x.Deleted == false).ToList().FindAll(x => x.SupName == str);
            else if(type==3)
                return Supplier.Objects.Where(x => x.Deleted == false).ToList().FindAll(x => x.Phone == str);
            else
            {
                return Supplier.Objects.Where(x => x.Deleted == false).ToList().FindAll(x => x.Address == str);
            }
        }
        
    }
}
